Data stored and transmitted electronically is vulnerable to theft. Data storage devices, such as hard drives, flash drives, compact disks, memory chips and the like, whether portable or built into a computing device, are vulnerable to unauthorized remote access or the data being intercepted in transmission (i.e., “hacking”) if linked to a network. Data storage devices are also vulnerable to theft of the physical device.
One widely used technique for preventing data theft is to store data in an encrypted format unreadable by unauthorized users. Such methods usually involve transforming the data with some sort of encryption algorithm. To read the encrypted data, a decryption key or algorithm must be used. Access to the decryption key or algorithm is typically limited to authorized users. Without the decryption key, unauthorized users generally are limited to “brute force” decryption techniques to decrypt the data.
Caching is a nearly ubiquitous technique used with modern data processing devices to improve overall performance. Data access from backing storage devices is relatively slow compared to the data processing speed of the central processing unit (CPU) of modern computing devices. The CPU can be left operating at less than full capacity, remaining idle for several chip cycles as it waits for data to be read from storage, causing overall computer performance to suffer. A solution to this is a cache, in which frequently retrieved data from backing storage devices is copied by the CPU and stored in main memory (i.e., in random access memory (RAM)). More generally, data stored on a server or external disk array can be cached in local RAM, on non-volatile solid state memory, or on local disk drives. Data is accessed by the CPU much more quickly from these local caches than from even the fastest network storage devices. Quicker access to frequently used data thus greatly improves overall processing speeds.